﻿using System;
using System.Collections.Generic;
using AsyncLibrary.StatusListener;

namespace AsyncLibrary
{
  public class ListenersCollection : List<IStatusListener>, IStatusListener
  {
    public void Set(IStatusListener listener)
    {
      Clear();
      Add(listener);
    }

    public void SetProgress(int value)
    {
      foreach (var item in this)
        item.SetProgress(value);
    }

    public void SetProgresMax(int value)
    {
      foreach (var item in this)
        item.SetProgresMax(value);
    }

    public void SetMode(StatusProgressMode value)
    {
      foreach (var item in this)
        item.SetMode(value);
    }

    public void SetStatus(string message)
    {
      foreach (var item in this)
        item.SetStatus(message);
    }

    public void SetInfo(string text)
    {
      foreach (var item in this)
        item.SetInfo(text);
    }

    public void FatalError(Exception ex)
    {
      foreach (var item in this)
        item.FatalError(ex);
    }

  }
}